package net.qiqbframework.modelling.command;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 命令定义中，需要一个业务id凭证来确定准确的聚合对象。
 */
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface BizIdentifierVoucher {
    /**
     * 在命令定义中，需要一个获取命令和事件的路由键属性的名称，这些属性提供应用于面向具有批注成员的实体的标识符。
     * 自选。
     * 如果留空，则默认为对应成员名称。如果成员以“getter”样式命名，则将被 "get" 删除。
     *
     * @return
     */
    String value() default "";

    /**
     * 在命令定义中，需要一个获取命令和事件的路由键属性的名称，这些属性提供应用于面向具有批注成员的实体的标识符。
     * 自选。
     * 如果留空，则默认为对应成员名称。如果成员以“getter”样式命名，则将被 "get" 删除。
     *
     * @return
     */
    String routingNaming() default "";
}
